GINO Graphics Suite - GINO v9.0    

Device Drivers Introduction

This Appendix contains details of all the most commonly used device drivers in GINO. The drivers are grouped in three sections; Screens, Printer/Plotters and Device-independent Metafiles. Each driver has one table listing the available nomination routines and a second table listing the characteristics and attributes of each nomination routine.

Different GINO implementations include an appropriate set of drivers, but additional ones can be supplied on request. The Microsoft Windows implementation always includes the Windows screen drivers, MWIN and WOGL, plus the Postscript plotter driver and all metafile drivers. Linux implementations include the X Windows and GLX screen drivers, plus all the plotter and metafile drivers. Other Unix implementations also include the X Windows and GLX drivers and the Postscript driver. All implementations include the CGM and SAVDRA metafile drivers.

It is important to note that the Characteristics table details the hardware characteristics of that device. As the general GINO philosophy is to use a hardware function if possible and if not, emulate it in software, a No in a table will produce a software emulation of that function if possible.

There are advantages and disadvantages for using hardware or software features such as; using software is recommended for consistent appearance on all devices, but using hardware is recommended for speed, smaller file sizes and a more professional appearance. For this reason, most features can be switched between hardware and software and the following table lists the routines used for this purpose.

The table also lists the routines used for selecting/setting a particular feature as well as the enquiry routines used for checking the current settings. The general enquiry routine gEnqDeviceState() can also be used to enquire what facilities are available on any one device.

  Selection/Setting Hard/Software switch Attributes Enquiry
Max Width x Height gSetDrawingLimits() N/A None
Default Width x Height gSetDrawingLimits() N/A gEnqDrawingLimits()
Colours / Pens gSetLineColour() N/A gEnqLineColour()
Colour Palette gDefineRGB()/gSetColourInfo() N/A gEnqRGB()/gEnqColourInfo()
Broken Linestyles gSetBrokenLine() gSetBrokenLineMode() gEnqBrokenLine()
Drawing Mode gSetPenType() None gEnqSelectedPen()
Thick Lines gSetLineWidth() gSetLineWidthMode() gEnqLineWidth()
Line Ends gSetLineEnd() gSetLineWidthMode() gEnqLineEnd()
Arcs gDrawArcxxx() gSetArcMode() None
Symbols gDrawMarker() gSetCharTransformMode() None
Fonts gSetCharFont()/gSetFontxxx() gSetCharTransformMode()/gSetSoftChars() gEnqFontStyle()
Character Sizes gSetCharSize() gSetCharTransformMode()/gSetSoftChars() gEnqCharAttribs()
Character Angles gSetStrAngle() gSetCharTransformMode()/gSetSoftChars() gEnqCharAttribs()
Italic Characters gSetItalicAngle() gSetCharTransformMode()/gSetSoftChars() gEnqCharAttribs()
Polygonal Filling gFillRect()/gFillSelectedPolygons()/
gFillPolygonxxx()
gSetFillMode() None
Segments gxxxSeg() gSetSegMode() gEnqSegAttribs()
Image Handling gxxxPixel() None gEnqPixelxxx()
Cursor Types gSetCursorType() N/A gEnqCursorType()
Cursor Actions gSetCursorAction() N/A gEnqCursorAction()
Cursor Positioning gSetCursorPos() N/A None
Event Types gAddEventType() N/A None
Batch Updates gxxxBatchUpdate() N/A None
Clipping/Masking gSetWindowxxx()/gSetMaskxxx() gSetClippingMode() gEnqWindowState()/
gEnqMaskState()
Transform/Viewing gScalexx()/gRotatexx()/gShiftxx()/ gUpdateView() gSetTransform() gEnqTransformState()/ gGetViewParams()
Shading gSetShadingMode() N/A gEnqShadingMode()
Lights gDefineLightSource() N/A gEnqLightAttribs()
Texture Mapping gDefineTexture() N/A gEnqTextureMappingMode()
Auxiliary Drawing Areas gxxxAuxDrawingArea() N/A None
Window/Device Titling gSetDeviceTitle() N/A None


N\A Implies that there is no method of switching the feature into software emulation

None Implies that there is no routine available for this purpose